/**
 * 财务报表服务接口 - 财务文档上传和AI分析的服务接口
 *
 * 开发人员：马勇俐
 * 开发时间：2025-11-16 至 2025-11-20
 * 模块职责：定义财务报表的完整处理流程接口，支持文档上传、状态管理、AI分析结果保存等功能
 *
 * 技术要点：
 * - 财务文档上传和存储管理
 * - AI分析状态流转和控制
 * - 分析结果保存和错误处理
 * - 多租户文档数据隔离
 * - 文件类型验证和安全性控制
 *
 * 开发故事：负责财务报表服务接口的设计和定义，与报表AI分析服务和前端上传界面深度配合，为企业提供专业的财务文档智能分析服务。
 */
package com.pbl.service;

import com.pbl.entity.FinanceReport;

public interface ReportService {
    /**
     * 创建财务报表上传记录
     * @param enterpriseId 企业ID
     * @param userId 用户ID
     * @param fileName 文件名称
     * @param fileType 文件类型
     * @param fileSize 文件大小
     * @param storageUrl 存储地址
     * @return 财务报表对象
     */
    FinanceReport createUpload(Long enterpriseId, Long userId, String fileName, String fileType, int fileSize, String storageUrl);

    /**
     * 标记报表为分析中状态
     * @param id 报表ID
     * @return 更新后的报表对象
     */
    FinanceReport markAnalyzing(Long id);

    /**
     * 保存AI分析结果
     * @param id 报表ID
     * @param analysisJson 分析结果JSON
     * @param success 是否分析成功
     * @return 更新后的报表对象
     */
    FinanceReport saveAnalysis(Long id, String analysisJson, boolean success);
}
